package com.wang.springbootinit.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

@Data
public class HonorVO {


    /**
     * 主键ID
     * 使用数据库自增策略
     */
    private Long id;

    /**
     * 学生ID
     * 关联student表的主键，标识荣誉所属的学生
     */
    private Long studentId;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 学号
     */
    private String studentNumber;

    /**
     * 荣誉名称
     * 例如：优秀学生干部、三好学生等
     */
    private String name;

    /**
     * 荣誉级别
     * 用于区分荣誉的重要程度和范围
     * 可选值：校级、市级、省级、国家级
     */
    private String level;

    /**
     * 颁发单位
     * 授予该荣誉的组织或机构名称
     */
    private String issuer;

    /**
     * 申请时间
     * 学生提交荣誉申请的时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date applyTime;

    /**
     * 审核状态
     * 标识荣誉申请的当前状态
     * 0: 待审核 - 学生已提交申请，等待管理员审核
     * 1: 已通过 - 管理员审核通过
     * 2: 已拒绝 - 管理员审核不通过
     */
    private Integer status;

    /**
     * 审核意见
     * 管理员在审核时可以填写的补充说明或建议
     * 特别是在拒绝申请时，需要说明原因
     */
    private String auditOpinion;

    /**
     * 审核人
     * 处理该荣誉申请的管理员用户名
     */
    private String auditor;

    /**
     * 审核时间
     * 管理员处理该荣誉申请的时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date auditTime;

    /**
     * 创建时间
     * 记录创建时间，用于数据追踪
     */
    private Date createTime;

    /**
     * 更新时间
     * 记录最后一次更新时间，用于数据追踪
     */
    private Date updateTime;
}
